import os
from dotenv import load_dotenv


class Config:
    def __init__(self):
        load_dotenv()  # 加载.env 文件中的环境变量

    @property
    def document_conn_config(self):
        return {
            'host': os.getenv('DEFAULT_DOCUMENT_CONN_HOST'),
            'port': int(os.getenv('DEFAULT_DOCUMENT_CONN_PORT')),
            'user': os.getenv('DEFAULT_DOCUMENT_CONN_USER'),
            'password': os.getenv('DEFAULT_DOCUMENT_CONN_PASSWORD'),
            'database': os.getenv('DEFAULT_DOCUMENT_CONN_DATABASE'),
            'charset': os.getenv('DEFAULT_DOCUMENT_CONN_CHARSET')
        }

    @property
    def key_conn_config(self):
        return {
            'host': os.getenv('KEY_CONN_HOST'),
            'port': int(os.getenv('KEY_CONN_PORT')),
            'user': os.getenv('KEY_CONN_USER'),
            'password': os.getenv('KEY_CONN_PASSWORD'),
            'database': os.getenv('KEY_CONN_DATABASE'),
            'charset': os.getenv('KEY_CONN_CHARSET')
        }

    @property
    def user_conn_config(self):
        return {
            'host': os.getenv('DEFAULT_USER_CONN_HOST'),
            'port': int(os.getenv('DEFAULT_USER_CONN_PORT')),
            'user': os.getenv('DEFAULT_USER_CONN_USER'),
            'password': os.getenv('DEFAULT_USER_CONN_PASSWORD'),
            'database': os.getenv('DEFAULT_USER_CONN_DATABASE'),
            'charset': os.getenv('DEFAULT_USER_CONN_CHARSET')
        }

    @property
    def public_document_conn_config(self):
        return {
            'host': os.getenv('PUBLIC_DOCUMENT_CONN_HOST'),
            'port': int(os.getenv('PUBLIC_DOCUMENT_CONN_PORT')),
            'user': os.getenv('PUBLIC_DOCUMENT_CONN_USER'),
            'password': os.getenv('PUBLIC_DOCUMENT_CONN_PASSWORD'),
            'database': os.getenv('PUBLIC_DOCUMENT_CONN_DATABASE'),
            'charset': os.getenv('PUBLIC_DOCUMENT_CONN_CHARSET')
        }

    @property
    def unit_permission_conn_config(self):
        return {
            'host': os.getenv('UNIT_PERMISSION_CONN_HOST'),
            'port': int(os.getenv('UNIT_PERMISSION_CONN_PORT')),
            'user': os.getenv('UNIT_PERMISSION_CONN_USER'),
            'password': os.getenv('UNIT_PERMISSION_CONN_PASSWORD'),
            'database': os.getenv('UNIT_PERMISSION_CONN_DATABASE'),
            'charset': os.getenv('UNIT_PERMISSION_CONN_CHARSET')
        }

    @property
    def login_verify_conn_config(self):
        return {
            'host': os.getenv('LOGIN_VERIFY_CONN_HOST'),
            'port': int(os.getenv('LOGIN_VERIFY_CONN_PORT')),
            'user': os.getenv('LOGIN_VERIFY_CONN_USER'),
            'password': os.getenv('LOGIN_VERIFY_CONN_PASSWORD'),
            'database': os.getenv('LOGIN_VERIFY_CONN_DATABASE'),
            'charset': os.getenv('LOGIN_VERIFY_CONN_CHARSET')
        }

    @property
    def backup_conn_config(self):
        return {
            'host': os.getenv('BACKUP_CONN_HOST'),
            'port': int(os.getenv('BACKUP_CONN_PORT')),
            'user': os.getenv('BACKUP_CONN_USER'),
            'password': os.getenv('BACKUP_CONN_PASSWORD'),
            'database': os.getenv('BACKUP_CONN_DATABASE'),
            'charset': os.getenv('BACKUP_CONN_CHARSET')
        }

# 创建Config类的实例
config_instance = Config()